package br.ita.escolaita.view;

import br.ita.escolaita.ejb.TurmaEjbLocal;
import br.ita.escolaita.model.entity.Turma;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.component.UIParameter;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.servlet.http.HttpSession;


public class TurmaBean {

    @EJB
    private TurmaEjbLocal turmaEjb;
    private Turma turma;
    private List<Turma> turmas;

    // Construtor default
    public TurmaBean() {        
    }

    public String salvar() {
        turmaEjb.salvar(turma);
        turma = new Turma();
        return "sucesso";
    }

    public String voltar() {
        HttpSession ses = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        ses.removeAttribute("turmaBean");
        ses.removeAttribute("serieBean");
        ses.removeAttribute("turma");
        return "voltar";
    }

    public String pesquisar() {
        String retorno = null;
        try {
            turmas = turmaEjb.listar(turma);
            retorno = "sucesso";
        } catch (Exception e) {
            e.printStackTrace();
            retorno = "erro";
        }

        return retorno;
    }

    public List<Turma> getTodas() {
        try {
            turmas = turmaEjb.listarTodas();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return turmas;
    }

    public void desativar() {
        turma.setStatus('I');
        turmaEjb.alterar(turma);
        turma = new Turma();
    }

    public void ativar() {
        turma.setStatus('A');
        turmaEjb.alterar(turma);
        turma = new Turma();
    }

    public String alterar() {
        return "alterar";
    }

    public String salvarAlteracao() {
        turmaEjb.alterar(turma);
        turma = new Turma();
        return "sucesso";
    }

    public void selecionarListener(ActionEvent event) {
        UIParameter component = (UIParameter) event.getComponent().findComponent("turmaDesativar");
        if (component == null){
            component = (UIParameter) event.getComponent().findComponent("turmaAtivar");
        }
        if (component == null){
            component = (UIParameter) event.getComponent().findComponent("turmaAlterar");
        }
        if (component != null){
            turma = (Turma) component.getValue();
        }
    }

    public String todas() {
        String retorno = null;
        try {
            turmas = turmaEjb.listarTodas();
            retorno = "sucesso";
        } catch (Exception e) {
            e.printStackTrace();
            retorno = "erro";
        }

        return retorno;
    }

    // Getters and Setters
    public Turma getTurma() {
        return turma;
    }

    public void setTurma(Turma turma) {
        this.turma = turma;
    }

    public List<Turma> getTurmas() {
        return turmas;
    }

    public void setTurmas(List<Turma> turmas) {
        this.turmas = turmas;
    }
}
